tg-me.com/machinelearning_interview/1638
Last Update:
Distill-Any-Depth - метод обучения моделей монокулярной оценки глубины, который сочетает кросс-контекстную дистилляцию и мульти-учительский подход для точного определения расстояния до объектов на RGB-изображении. Он предназначен для обучения моделей (например, DPT, MiDaS или DepthAnythingv2), которые учатся на псевдо-метках, сгенерированных учительскими моделями (Genpercept, DepthAnythingv2).
Метод не просто улучшает существующие алгоритмы, но и задает новый стандарт в области определения глубины. Методика может применяться в сфере автономного транспорта и AR-решений. Она может ускорить создание точных 3D-карт для навигации и улучшить реалистичность виртуальных миров за счет детализированного анализа пространства. При этом, обучение CV-моделей с Distill-Any-Depth довольно энергоэффективно — достаточно одной NVIDIA V100.
Основа Distill-Any-Depth - кросс-контекстная дистилляция, объединяющая 2 сценария:Shared-Context Distillation
— модель-учитель и модель-ученик обучаются на одинаковых фрагментах изображения.Local-Global Distillation
— модель-учитель анализирует локальные фрагменты, а модель-ученик предсказывает глубину для всего изображения, отвечая за глобальную согласованность сцены.
Экспериментальная модель обучалась на 50 тыс. изображений из SA-1B с разрешением 560×560. Использовались псевдо-метки от Genpercept (диффузионная модель) и DepthAnythingv2 (DINOv2). В рамках мульти-учительского подхода на каждой итерации случайно выбирался один учитель.
На тестах DIODE и ETH3D метод сократил значение AbsRel на 9.6–20% по сравнению с базовой дистилляцией. Например, при обучении модели-ученика DPT с учителями Genpercept и DepthAnythingv2 AbsRel на ETH3D составил 0.065 против 0.096 у Genpercept.
На бенчмарках NYUv2, KITTI, ScanNet модель достигла SOTA: AbsRel 0.043 (NYUv2), 0.070 (KITTI), 0.042 (ScanNet). В сравнении с DepthAnything v2 (AbsRel: 0.045 на NYUv2) и Marigold (0.055) Distill-Any-Depth показал более высокую детализацию и точность относительной глубины.
# Create Conda env
conda create -n distill-any-depth -y python=3.10
conda activate distill-any-depth
# Clone Repo
git clone https://github.com/rmurai0610/MASt3R-SLAM.git --recursive
cd MASt3R-SLAM/
# Install dependencies
pip install -r requirements.txt
pip install -e .
# If use hf_hub_download, you can use the following code
checkpoint_path = hf_hub_download(repo_id=f"xingyang1/Distill-Any-Depth", filename=f"large/model.safetensors", repo_type="model")
# Launch Gradio demo
python app.py
@ai_machinelearning_big_data
#AI #ML #Depth #DIstillAnyDepth